//package cn.stylefeng.guns.modular.trc.listen;
//
//import cn.stylefeng.guns.modular.trc.config.TrcProperty;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
//import org.springframework.context.ApplicationContext;
//import org.springframework.context.annotation.Bean;
//import org.springframework.stereotype.Component;
//import org.tron.trident.core.ApiWrapper;
//import org.tron.trident.core.contract.Contract;
//import org.tron.trident.core.contract.Trc20Contract;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.ApplicationContext;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.PostConstruct;
//import java.util.Timer;
//import java.util.TimerTask;
//
//@Component
//public class ChannelListener {
//
//    @Autowired
//    private TrcProperty trcProperty;
//
//    @Autowired
//    private ApplicationContext applicationContext;
//
//    @Autowired
//    private ApiWrapper apiWrapper;
//
//
//    @PostConstruct
//    public void startListening() {
//        Timer timer = new Timer();
//        timer.schedule(new TimerTask() {
//            public void run() {
//                boolean isShutDown = apiWrapper.channel.isShutdown();
//                if (isShutDown) {
//                    updateApiWrapper();
//                }
//            }
//        }, 0, 1000); // 每秒检查一次
//    }
//
//    private void updateApiWrapper() {
//     //   apiWrapper = applicationContext.getBean(ApiWrapper.class); // 通过应用上下文获取新的 ApiWrapper 实例
//     //   apiWrapper = getApiWrapper() ;
//    }
//
//
//    public ApiWrapper getApiWrapper() {
//        //配置是否是测试链还是正式链
//        if (trcProperty.getIsProd()) {
//            // 正式环境需要到Tron申请一个apiKey进行使用
//          return   ApiWrapper.ofMainnet(trcProperty.getPayPrivateKey(), trcProperty.getApiKey());
//        } else {
//            // 测试环境不需要apikey
//            return  ApiWrapper.ofNile(trcProperty.getPayPrivateKey());
//        }
//    }
//
//
//}
//
